Packet communication method and apparatus and a recording medium storing a packet communication program

ABSTRACT

A packet communication method and a packet communication system capable of making an IPv4-compatible application operating on an information processing apparatus communicate with another information processing apparatus connected to an IPv6 network without using an address translation router. In the information processing apparatus connected to the IPv6 network, an IPv4-to-IPv6 protocol conversion control function is incorporated in a LAN driver. A protocol conversion control module receives an IPv4 packet from a protocol control module. When a send destination IPv4 address contained in a header of the packet is registered in an address translation table incorporated in the protocol conversion control module, an IPv6 address is generated to be sent onto a LAN. Unless the send destination IPv4 address contained in the packet header is registered in the address translation table incorporated in the protocol conversion control module, the IPv4 packet as received is intactly sent onto the LAN.

CROSS REFERENCES TO RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 10/207,247, filed Jul. 30, 2002, now pending, whichis a continuation application of U.S. patent application Ser. No.09/257,003, filed Feb. 25, 1999, now U.S. Pat. No. 6,580,717, which is acontinuation-in-part application of U.S. patent application Ser. No.08/887,123, filed Jul. 2, 1997, now U.S. Pat. No. 6,038,233, the entiredisclosures of which are incorporated herein by reference. Thisapplication is related to U.S. patent application Ser. No. 10/453,589,filed Jun. 4, 2004, now U.S. Pat. No. 7,158,526.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a method of operatingIPv4-network-compatible applications on an IPv6 network, a packetgeneration method, an IP-network-dedicated translator and an NAT(Network Address Translator) as well as a recording medium having apacket generation program recorded thereon.

2. Description of Related Art

Among the protocols for the network layers employed in the TCP(Transmission Control Protocol)/IP (Internet Protocol) communications,the one most familiar in the present state of the art is the IP. Atpresent, the IP of version 4 (hereinafter referred to as the IPv4) isprevailing. Although the IP is currently winning popularity more andmore at a high rate in various communication service fields, keepingstep with spreading of the internet, the IP nevertheless confronts aserious problem in respect to the exhaustion of IP address.

As measures for solving the above problem, there are proposed currentlysuch a provisional solution that private address space of the IPv4 islocally provided for local LANs (Local Area Networks) as well as an IPof version 6 (hereinafter referred to as the IPv6). In the present stateof the art, a large scale LAN is being realized in which there coexistmixedly the LANs conforming to the IPv6 and the LANs conforming to theIPv4, respectively. As a document concerning the standards for theinterconnection of the IPv6-based LAN and the IPv4-based LAN, there canbe mentioned “RFC1933”. According to the RFC1933 (Transition Mechanismfor IPv6 and Routers; R. Gilligan, 1996, April, IETF), interconnectionof the IPv6 network is rendered possible by mapping the IPv4 address tothe IPv6 address.

SUMMARY OF THE INVENTION

As mentioned above, although the IPv6 network is on the way of beingdeveloped, the number of the APs (Application Programs) conforming to orcompatible with the IPv6 is very small as compared with theIPv4-compatible APs. It is further noted that there has not yet beenavailable such means which allows the IPv4-compatible applicationoperating on a PC (Personal Computer)/WS (Work Station) and theIPv6-compatible application on a PC/WS to communicate directly with eachother without resorting to the aid of a network having an NAT functionsuch as the address translation router or the like. In the case wherethe address translation router is employed, protocol conversion isperformed in addition to the routing processing known heretofore. Thus,a heavy load is imposed on the address translation router. By the way,the IPv4 packet dedicated to the hardware address resolution undergoesno conversion. In order that an existing IPv4-compatible AP can performcommunication without consciousness of the IP address of aconnection-destined host, a logical-name-based address resolutionrelying on a DNS (Domain Name System) is indispensably required.

With the present invention, it is contemplated as an object thereof tomake it possible that an IPv4-compatible APs operating on a PC/WS cancommunicate directly with an IPv6-compatible application on a host suchas a PC/WS or the like without need for intervention of networkequipment such as the address translation router or the like impartedwith the NAT function.

Another object of the present invention is to provide a DNS functionconforming to or compatible with the IPv6 (IPv6 address inquiryfunction) in order to make it possible for an IPv4-compatible AP toperform communication without consciousness of the address of acommunication counterpart.

Yet another object of the present invention is to make it possible thata packet for hardware address resolution conforming to or compatiblewith the IPv4 as issued by an existing AP can be converted to ahardware-address-resolution-dedicated packet conforming to or compatiblewith the IPv6 with a view to enabling an IPv4-compatible AP tocommunicate with an IPv6-compatible AP.

The information processing apparatus such as PC/WS or the like which isimparted with a LAN control function (hereinafter also referred to asthe LAN control apparatus) and to which the present invention can findapplication includes ordinarily IPv4-compatible APs and an IPv4 protocolcontrol module. Ordinarily, the above-mentioned LAN control function isrealized mainly through a program, so-called software, and there isadditionally provided hardware destined for performingtransmission/reception controls for the communication media.

For achieving the objects mentioned above, a protocol conversion controlmodule is provided between an IPv4 protocol control module and a LANcontrol module both for the LAN control function. The protocolconversion control module includes an IPv4-IPv6 switch control module, abuffer conversion module, a header conversion control module, an IPv6transmission/reception control module and a DNS-NAT cooperation orcooperation control module. The protocol conversion control moduleconverts the IPv4 packet outputted from the IPv4 protocol control moduleto the IPv6 packet and outputs the latter to the LAN control module.Further, the IPv6 packet outputted from the LAN control module isconverted to the IPv4 packet to be subsequently outputted to the IPv4protocol control module.

Controls and data flows among the individual control modules are asfollows.

In the case of transmission, data is transferred from an IPv4-compatibleAP to the IPv4 protocol control module, while the IPv4 protocolconversion control module transfers the IPv4 packet to the protocolconversion control module. The protocol conversion control moduleinterprets the packet as transferred, to thereby perform processingsdescribed below. In the case of an ARP request packet, the protocolconversion control module messages a hardware address as generated tothe IPv4 protocol control module. In that case, the actual hardwareaddress resolution is realized by performing address resolution with theIPv6 protocol.

In the case of inquiry packet of the DNS, the protocol conversioncontrol module inquires both the IPv6 address and the IPv4 address, andwhen the IPv6 address is returned as a response packet, the IPv4 addresswhich corresponds to the IPv6 address is transmitted to the IPv4protocol control module.

In the case of an ordinary packet, the protocol conversion controlmodule checks the IPv4 address of a send destination as contained in theIPv4 header to thereby perform processings mentioned below. When theabove address is one registered in an address translation tableincorporated in the protocol conversion control module, the protocolconversion control module translates the address of concern to the IPv6address on the basis of the address translation table to therebygenerate an IPv6 header, which is then sent onto the LAN in the form ofIPv6 packet. Unless the address of concern is registered in the addresstranslation table incorporated in the protocol conversion controlmodule, the protocol conversion control module sends the IPv4 packetintactly onto the LAN.

In the case of reception, when an IPv6 packet is received from the LANcontrol module, the protocol conversion control module checks the IPv6address of the source sender as contained in the IPv6 header. When theaddress mentioned above is one registered in the address translationtable incorporated in the protocol conversion control module, theprotocol conversion control module translates that address to thecorresponding IPv4 address to thereby generate an IPv4 header andtransfer the IPv4 packet data to the IPv4 protocol control module ofhigher level.

In the case where the IPv6 address is not registered in the addresstranslation table incorporated in the protocol conversion controlmodule, the protocol conversion control module discards the receivedpacket. Upon reception of the IPv4 packet from the LAN control module,the protocol conversion control module transfers the data of the otherpacket than the DNS response packet to the protocol control module. Inthis manner, it is possible to make the IPv4-compatible AP communicatewith the IPv6-compatible AP.

By adopting the means described above, the objects mentioned previouslycan be achieved.

Thus, by providing the protocol conversion control module between theprotocol control module and the LAN control module known heretofore sothat the protocol conversion control module performs header conversionbetween the IPv4 header and the IPv6 header for the packets flowingbetween the protocol control module and the LAN control module, theapplication program which transfers data to the protocol control modulecan carry out the communication with other apparatus connected to theIPv6 network in accordance with the IPv6, even when the former is theIPv4-compatible application.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a configuration diagram of a LAN control apparatus accordingto a first embodiment of the present invention.

FIG. 2 shows an exemplary configuration of a communication networksystem according to an exemplary embodiment of the present invention.

FIG. 3 illustrates an exemplary structure of an address translationtable of a host A according to an exemplary embodiment of the presentinvention.

FIG. 4 illustrates a structure of an address translation table of a hostB according to an exemplary embodiment of the present invention.

FIG. 5 is a configuration diagram of a LAN control apparatus accordingto a second embodiment of the present invention.

FIG. 6 is a configuration diagram of a LAN control apparatus accordingto a third embodiment of the present invention.

FIG. 7 illustrates a packet sequence involved in a MAC addressresolution.

FIG. 8 illustrates a processing flow (DNS packet send processing) in aDNS-NAT cooperation control module.

FIG. 9 illustrates a processing flow (DNS packet reception processing)in the DNS-NAT cooperation control module.

FIG. 10 illustrates a packet switch control processing flow in anIPv4-IPv6 switch control module.

FIG. 11 is a view showing a format of a UDP header packet.

FIG. 12 is a view showing a format of a DNS header packet.

FIG. 13 is a view showing a format of a DNS inquiry message.

FIG. 14 is a view showing a format of a DNS response message.

FIG. 15 is a view showing a format of an ARP message.

FIG. 16 is a configuration diagram of an information processingapparatus.

DETAILED DESCRIPTION OF THE EMBODIMENTS

Exemplary embodiments of the present invention will be described byreference to the drawings.

At first, description will be made of an exemplary network configurationaccording to an embodiment of the present invention.

FIG. 2 is a view showing an exemplary network configuration according tothe instant embodiment. As can be seen in the figure, hosts eachimplemented as an information processing apparatus having a LAN controlfunction (hereinafter also referred to as the LAN control apparatus) areinterconnected to constitute networks. An IPv6 network 2011 and an IPv4network 2019 are interconnected via an IPv4-to-IPv6 translation router2012. Connected to the IPv4 network 2019 is a DNS (Domain Name System)server 2017 which is in charge of managing domain names of the IPv4network 2018 and the IPv6 network 2011. Further connected to the IPv4network 2018 is a host D 2018 which is compatible with or conforms to anexisting IPv4 such as a PC or the like.

Connected to the IPv6 network 2011 are a host A 1001, a host B 2001 anda host C 2007. Each of the host A 1001 and the host B 2001 is realizedas the host having an IPv4-to-IPv6 translation function. The host C 2007serves as the IPv6-dedicated host, and an IPv6-compatible AP isoperating on the host C 2007. Incorporated in the hosts A and B,respectively, are IPv4-compatible APs 1004 and 2002, protocol controlmodules 1005 and 2003, protocol conversion control modules 1006 and 2004and LAN control modules 1007 and 2006.

Firstly, description will be directed to the interfaces between or amongthe individual control modules incorporated in the host A 1001. Theinterface between the TCP/IPv4-compatible AP 1004 and the interfaceprotocol control module 1005 serves as the interface for transaction ofuser data.

Communication between the protocol control module 1005 and the protocolconversion control module 1006 is performed by using IPv4 packets. TheIPv4 packet is comprised of an MAC (Media Access control) header field,an IPv4 header field and an IPv4 packet data field. Communicationbetween the protocol conversion control module 1006 and the LAN controlmodule 1007 is realized by using the IPv6 packet and IPv4 packet.

The IPv6 packet is comprised of an MAC header field, an IPv6 headerfield and an IPv6 packet data field. The protocol conversion controlmodule 1006 checks the IPv4 header of the IPv4 packet inputted from theprotocol control module 1005 to thereby decide whether or not headerconversion is to be performed. When the conversion is required, the IPv4header is converted to an IPv6 header, whereupon the IPv6 packetresulting from the conversion is outputted to the LAN control module.

Next, description will be made of the addresses set at the hosts A to D.In this conjunction, the IPv4 address held by the protocol controlmodule 1005 of the host A 1001 is represented by IPv4-A, the IPv4address held by the protocol control module 2003 of the host B 2001 isrepresented by IPv4-B, and the IPv4 address held by the protocol controlmodule 2015 of the host D 2018 is represented by IPv4-D.

An exemplary structure of an address translation table of the host A1001 is illustrated in FIG. 3. The IPv6 address IPv6-A corresponds tothe IPv4 address IPv4-A of the host A 1001, the private IPv4 addressIPv4-B (private) corresponds to the IPv6 address IPv6-B of the host B2001, and the private IPv4 address IPv4-C (private) corresponds to theIPv6 address IPv6-C of the host C 2007.

An exemplary structure of an address translation table of the host B isillustrated in FIG. 4. The IPv6 address IPv6-B corresponds to the IPv4address IPv4-B of the host B 2001, the private IPv4 address IPv4-C(private) corresponds to the IPv6 address IPv6-C of the host C 2007, andthe private IPv4 address IPv4-A (private) corresponds to the IPv6address IPv6-A of the host A 1001.

The first entry of the address translation table (hereinafter alsoreferred to as the NAT table) which indicates correspondence between theown IPv4 address and the IPv6 address is set upon initialization. Thesecond and subsequent entries are set statically by the user or setdynamically by the DNS-NAT cooperation control module incorporated inthe protocol conversion control module.

Next, communications between the host A 1001 and the host B 2001,between the host A 1001 and the host C 2007, and between the host A 1001and the host D 2018, respectively, will be explained by reference toFIG. 3 and FIG. 4.

At first, communication between the host A 1001 and the host B 2001 willbe described. The IPv4-compatible AP 1004 of the host A 1001 sends IPv4packet by using a provisional IPv4 address IPv4-B (private) for the hostB 2001 via the protocol control module 1005. When the send destinationIPv4 address contained in the IPv4 header is registered in the addresstranslation table 3001, the corresponding IPv6 address is read out fromthe address translation table 3001 to thereby generate the IPv6 header,whereon the IPv6 packet is sent onto the LAN 1 (2011) under the controlof the LAN control module 1007.

Upon reception of the IPv6 packet, the LAN control module 2006 of thehost B 2001 transfers the packet to the protocol conversion controlmodule 2004. The protocol conversion control module 2004 checks the senddestination IPv6 address contained in the IPv6 header. When the senddestination IPv6 address is registered in the address translation table4001, the corresponding IPv4 address is read out from the addresstranslation table 4001 to thereby generate an IPv4 header, whereon theIPv4 packet is transferred to the protocol control module 2003.

Next, description will turn to communication between the host A 1001 andthe host C 2007. In the host A 1001, the IPv6 packet is generated forthe provisional IPv4 address of the host C 2007 by referencing theaddress translation table 3001 as in the case of the communication tothe host B 2001, which packet is then received intactly by the host C2007 to be interpreted by the protocol control module 2009.

Description will next be made of the communication between the host A1001 and the host D 2018. The IPv4-compatible AP 1004 of the host A 1001sends the IPv4 packet via the protocol control module 1005 by using theIPv4 address IPv4-D for the host D 2018. The protocol conversion controlmodule 1006 checks the send destination IPv4 address contained in theIPv4 header. The IPv4 packet is sent out via the LAN control module 1007without undergoing the header conversion because the IPv4-D is notregistered in the address translation table 3001. The IPv4 packet assent out is received by the router 2012, whereupon the IPv4 packet asreceived by the router 2012 is sent out onto the LAN 2 2019. Thus, thehost D 2013 connected to the LAN 2 2019 receives the IPv4 packet,whereon the IPv4-compatible AP 2016 receives the data sent from theIPv4-compatible AP 1004 of the host A 1001 by way of the LAN controlmodule 2013 and the protocol control module 2015.

Now referring to FIG. 1, configuration of the LAN control apparatus ofthe host A, host B and others will be described. FIG. 1 shows aconfiguration of the LAN control apparatus 1001 of the host A. Theaddress space of the LAN control apparatus 1001 is comprised of a userspace 1002 in which application programs operate and a kernel space 1003in which the kernel operates. A TCP/IPv4-compatible AP 1004 is residentin the user space 1002. As the AP, there can be mentionedTCP/IPv4-compatible programs such as telnet, ftp, HTTP client andothers.

Interfacing between the TCP/IPv4-compatible AP 1004 resident within theuser space 1002 and the protocol control module 1005 resident within thekernel space 1003 is realized by inputting/outputting the data packetsgenerated by the TCP/IPv4-compatible AP 1004.

The kernel space 1003 includes individual components such as theprotocol control module 1005, the protocol conversion control module1006 and the LAN control module 1007.

Interfacing between the protocol control module 1005 and the protocolconversion control module 1006 is realized by the interface throughwhich the IPv4 packets are inputted/outputted. The IPv4 packet is apacket constituted by adding an IPv4 header and an MAC (Media AccessControl) header to a data packet. Interfacing between the protocolconversion control module 1006 and the LAN control module 1007 isrealized by an interface through which the IPv4 packets or the IPv6packets are inputted/outputted. The IPv6 packet is a packet constitutedby an IPv6 header and the MAC header added to a data packet.

The protocol control module 1005 includes a TCP transmission/receptioncontrol module 1008 and an IPv4 transmission/reception control module1009.

The protocol conversion control module 1006 includes an IPv4-IPv6 switchcontrol module 1010, a buffer conversion control module 1011, a DNS-NATcooperation control module 1012, a header conversion control module1013, an IPv6 transmission/reception control module 1014, an addresstranslation table 1015 and an inquiry packet queue 1016.

Next, description will be directed to individual control modulesincorporated in the protocol conversion control module 1006.

Firstly, description will be directed to the input/output interfacebetween the individual control modules. All the communications performedbetween the individual control modules incorporated in the protocolconversion control module 1006 are realized by inputting/outputting IPv4packets or IPv6 packets.

The IPv4-IPv6 switch control module 1010 has a packet switching functionfor the IPv4 packet transferred from the protocol control module 1005and the received packet transferred from the LAN control module 1007(IPv4 packet or IPv6 packet), and a hardware address dummy responseprocessing function for the protocol control module 1005. Contents ofthis processing will be described in detail hereinafter.

The buffer conversion control module 1011 controls conversion of abuffer handled by the protocol control module 1005 and a buffer handledby the protocol conversion control module 1006. The IPv6transmission/reception control module 1014 performs IPv6 protocolprocessing.

The header conversion control module 1013 performs conversion betweenthe IPv4 header and the IPv6 header by referencing the addresstranslation table 1015. The DNS-NAT cooperation control module 1012copies the DNS address inquiry packet received from the protocol controlmodule 1005, to thereby inquire of both the IPv4 address and the IPv6address. Further, the DNS-NAT cooperation control module 1012 reservesthe address of the IPv4 (ordinarily private address) and allocates thereserved IPv4 address to the IPv6 address of the connection-destinedhost (provisional IPv4 address) to register it in the addresstranslation control table 1015 incorporated in the header conversioncontrol module 1013. The provisional IPv4 address registered in theDNS-NAT cooperation control module 1012 is transmitted to the protocolcontrol module 1005 to thereby allow the TCP/IPv4-compatible AP 1004 tobe connected to the IPv6 network by using the provisional IPv4 address,starting from the most significant one.

An inquiry packet queue 1016 is resident internally of the DNS-NATcooperation control module 1012. The inquiry packet queue is a tablewhich registers therein in combination the DNS inquiry packetinformation outputted from the protocol conversion control module 1005and the information concerning the processing for the inquiry packetmentioned above (i.e., flag indicating whether DNS response packetprocessing has been done in response to the DNS inquiry packet). Byusing this inquiry packet queue, the address inquiry packet is queuedfor performing the reception control of the response packet for theaddress inquiry packet. Concerning the contents of the processingperformed by the DNS-NAT cooperation control module 1012, descriptionwill be made in detail hereinafter.

The hardware address dummy processing function of the IPv4-IPv6 switchcontrol module 1010 will be elucidated by reference to FIG. 7.

FIG. 7 is a view illustrating a packet sequence involved in the MACaddress resolution between the protocol control module 1005 and theIPv4-IPv6 switch control module 1010 incorporated in the LAN controlapparatus 1001 and the connection-destined host 2001.

Between the protocol control module 1005 and the IPv4-IPv6 switchcontrol module 1010, the IPv4 packets are inputted/outputted, whilebetween the IPv4-IPv6 switch control module 1010 and theconnection-destined host 2001, IPv6 packets are transferred asinput/output by way of the LAN.

At first, for the purpose of the hardware address resolution for theconnection-destined host 2001, the protocol control module 1005 outputsthe ARP request packet to the IPv4-IPv6 switch control module 1010.

The IPv4-IPv6 switch control module 1010 then generates an ARP responsemessage which is then outputted to the protocol control module 1005. Forthe send source hardware address contained in the ARP response message,the IPv4-IPv6 switch control module 1010 generates and sets a givenaddress. The protocol control module 1005 generates an MAC header byusing this hardware address, wherein the IPv4 packet is outputted to theIPv4-IPv6 switch control module 1010. The IPv4-IPv6 switch controlmodule 1010 converts the IPv4 packet to the IPv6 packet through themedium of the header conversion control module 1013. In that case,hardware address information of the connection-destined host 2001 isrequired for generating the MAC header. To this end, the data inputtedfrom the protocol control module 1005 and converted to the IPv6 packetis temporarily held in the IPv4-IPv6 switch control module 1010, and anNS (Neighbor Solicitation) package is generated for inquiring about thehardware address of the connection-destined host 2001.

The IPv4-IPv6 switch control module 1010 outputs this NS packet (IPv6packet) to the connection-destined host 2001 via the LAN. Upon receptionof the NS packet, the connection-destined host 2001 generates an NA(Neighbor Advertisement) packet for messaging the own hardware address,the NA packet as generated being then outputted to the IPv4-IPv6 switchcontrol module 1010 of the LAN control apparatus 1001 via the LAN. Uponreception of the NA packet, the IPv4-IPv6 switch control module 1010generates the MAC header on the basis of the hardware addressinformation concerning the connection-destined host 2001 as contained inthe NA packet, to thereby generate the IPv6 packet which is thenoutputted to the connection-destined host 2001 via the LAN together withthe IPv6 packet data being held.

A format of the ARP message data is shown in FIG. 15. A hardware typefield of the ARP message indicates the type of LAN. In the case of theEthernet, “1” is entered. A protocol type field indicates the type ofprotocol, and “0x0800” indicates the IP. An HLEN field indicates thelength of a physical hardware address, and a PLEN field indicates thelength of the protocol address. An operation field indicates the type ofthe ARP packet such as of the ARP request, the ARP response and thelike.

Next, referring to FIG. 10, the packet switch control function of theIPv4-IPv6 switch control module 1010 will be explained. FIG. 10 shows apacket switch control processing flow of the IPv4-IPv6 switch controlmodule 1010.

The IPv4-IPv6 switch control module 1010 makes the header conversionprocessing decision and the DNS packet decision for the IPv4 packetinputted from the protocol control module 1005. Further, the IPv4-IPv6switch control module 1010 performs the header conversion processingdecision for the IPv4 packet inputted from the LAN control module 1007.

Descriptions will first be directed to the processing for the packetinputted from the protocol control module 1005. Upon reception of theIPv4 packet from the protocol control module 1005, the IPv4-IPv6 switchcontrol module 1010 first decides whether or not the IPv4 packet is aDNS packet (10001). In the case of the DNS packet, the IPv4-IPv6 switchcontrol module 1010 interprets the messaged contents of the DNS headerto thereby switch the control module to be called in dependence on thecontents of the message (10002).

When the content of the message indicates the DNS packet, the IPv4-IPv6switch control module 1010 outputs the IPv4 packet to the LAN controlmodule 1007 as it is (10003). When the content of the message nowconcerned indicates the DNS inquiry packet, the IPv4-IPv6 switch controlmodule 1010 outputs the IPv4 packet to the DNS-NAT cooperation controlmodule 1012 (10004).

When the IPv4 packet inputted from the protocol control module 1005 isother than the DNS packet, the address translation table 1015incorporated in the header conversion control module 1013 is searchedfor the send destination IPv4 address contained in the IPv4 header ofthe IPv4 packet inputted (10005). Unless the send destination IPv4address contained in the IPv4 header coincides with the IPv4 addressregistered in the address translation table 1015, the IPv4-IPv6 switchcontrol module 1010 outputs the IPv4 packet intactly to the LAN controlmodule (10006). When coincidence is found, the IPv4-IPv6 switch controlmodule 1010 outputs the IPv4 packet to the header conversion controlmodule 1013 by way of the buffer conversion control module 1011 toperform the protocol conversion processing (10007).

Next, description will be made of the processing in the case where theIPv4-IPv6 switch control module 1010 receives as the input the IPv4 orIPv6 packet from the LAN control module 1007.

Upon inputting of the packet from the LAN control module 1007, theIPv4-IPv6 switch control module 1010 makes decision whether the packetas inputted is the IPv4 packet or the IPv6 packet (10008). In the casewhere the inputted packet is the IPv4 packet, the IPv4-IPv6 switchcontrol module 1010 then decides whether or not the IPv4 packet is theDNS response packet (10009). Unless the IPv4 packet is the DNS responsepacket, the IPv4-IPv6 switch control module 1010 outputs the IPv4 packetto the protocol control module 1005 (10010). In case the inputted IPv4packet is the DNS response packet, the IPv4-IPv6 switch control module1010 outputs the IPv4 packet to the DNS-NAT cooperation control module(10011). When the packet inputted from the LAN control module 1007 isthe IPv6 packet, the IPv4-IPv6 switch control module 1010 outputs theIPv6 packet to the IPv6 transmission/reception control module 1014(10012).

Referring to FIG. 11 to FIG. 14, description will be made of the formatof the DNS packet.

Ordinarily, for the DNS packet, UDP (User Datagram Protocol) isemployed. A format of the UDP header is illustrated in FIG. 11. The UDPheader is comprised of a source port number field, a destination portnumber field, a data length field and a UDP check-sum field. Ordinarily,“53” is used as the port number of the DNS. FIG. 12 shows a format ofthe DNS header. The DNS header is divided into an ID field, a controlfield, an inquiry record number field, a response record number field, aregistered organ record number field and an additional record numberfield. In the ID field, a value generated arbitrarily upon generation ofthe inquiry packet is placed, and the ID contained in the DNS header ofthe response packet for the inquiry packet has the same value as theabove-mentioned value. There are entered in the control field the packetinformation such as the types of the inquiry/response and the like.

FIG. 13 shows a format of the DNS inquiry message. A domain name for theinquiry is set in a name field. In a QTYPE field, there is set inquirytype information such as the IPv4/IPv6 address or the like.

FIG. 14 shows a format of the DNS response message. A domain name forthe inquiry is set in a name field. In a QTYPE field, there is setinquiry type information such as the IPv4/IPv6 address or the like. Inthe IPv4 or IPv6 address field, an address corresponding to the addresstype designated in the QTYPE field is set.

Processing flow of the DNS-NAT cooperation control module 1012 will beexplained by reference to FIGS. 8 and 9. The processing contents of theDNS-NAT cooperation control module 1012 can be globally classified to aprocessing for the DNS packet inputted from the protocol control module1005 (which will be elucidated in conjunction with the DNS packet sendprocessing shown in FIG. 8) and a processing of the DNS packet inputtedfrom the LAN control module 1007 (which will be described in conjunctionwith the packet reception processing shown in FIG. 9).

At first, by reference to FIG. 8, description will be made of aprocessing flow in the case where the DNS-NAT cooperation control module1012 receives as the input thereto a DNS address inquiry packet (IPv4packet) from the IPv4-IPv6 switch control module 1010.

The DNS-NAT cooperation control module 1012 first checks the UDP headerof the IPv4 packet as inputted to thereby decide whether the source portnumber is “53” and the type set in the DNS header is the DNS inquirypacket (8001). In the case where the type in the DNS header does notindicate the DNS address inquiry packet, the IPv4 packet is outputtedintactly to the LAN control module (8002).

When the type set at the DNS header indicates the DNS address inquirypacket, the DNS-NAT cooperation control module 1012 then copies the DNSpacket (8003) to thereby generate the DNS inquiry packet for the IPv6address by using the copied packet (8004). Subsequently, the IDcontained in the DNS header is registered in the inquiry packet queue(8005).

Finally, the DNS-NAT cooperation control module 1012 outputs the DNSinquiry packet of the IPv6 address to the LAN control module 1007(8006), while the DNS inquiry packet of the IPv4 address is outputted tothe LAN control module 1007 (8007).

Next referring to FIG. 9, description will turn to a processing flow inthe case where the DNS-NAT cooperation control module 1012 receives asthe input a DNS response packet from the LAN control module 1007.

The DNS-NAT cooperation control module 1012 first compares the IDentered in the DNS header of the received packet with the ID registeredin the inquiry packet queue to thereby check whether the ID of the DNSresponse packet coincides with any one of the identifiers registered inthe inquiry packet queue 1016 (9001).

Unless the coincidence is found between the ID and the identifier, theDNS-NAT cooperation control module 1012 outputs the DNS response packetintactly to the protocol control module 1005 (9002). On the other hand,when the coincidence is found, the DNS-NAT cooperation control module1012 then checks whether or not the response packet has already been athand for the relevant packet of the DNS inquiry queue (9003). When theresponse packet has already been at hand, the relevant record isdequeued from the inquiry queue (9004), and the DNS response packetwhich is currently undergoing the reception processing is discarded(9005).

When the response packet has not been processed yet, the DNS-NATcooperation control module 1012 sets a processing-done flag at therelevant record of the inquiry queue (9006). Then, the processingproceeds to the next step.

Next, the DNS-NAT cooperation control module 1012 makes decision as tothe IP address contained in the response message (9007). When the IPaddress contained in the response message is the IPv4 address, the DNSpacket is intactly transferred to the protocol control module (9008).When the IP address in the response message is the IPv6, a correspondingIPv4 address is read out from the address pool table to be registered inthe address translation table (9009). In succession, the DNS responsepacket is generated by using the assigned IPv4 address (9010), whereonthe DNS response packet as generated is outputted to the protocolcontrol module 1005 (9011).

Next, description will turn to a second embodiment of the presentinvention.

FIG. 5 shows a configuration of a LAN control apparatus 5001 accordingto the second embodiment of the invention. The address space of the LANcontrol apparatus 5001 is comprised of a user space 1002 in whichapplication programs (AP) operate and a kernel space 1003 for a kernelto operate. A TCP/IPv4-compatible AP 1004 is resident in the user space1002.

The kernel space 1003 includes a protocol control module 1005, aprotocol conversion control module 5006 and a LAN control module 1007,respectively. The protocol control module 1005 is comprised of a TCPtransmission/reception control module 1008 and an IPv4 control module1009. The protocol control module 1005 transfers the data received fromthe TCP/IP-compatible AP 1004 to the protocol conversion control module5006 as the IPv4 packet. The protocol conversion control module 5006 iscomprised of an IPv4-IPv6 switch control module 1010, a bufferconversion control module 1011, a DNS-NAT cooperation control module1012, a header conversion control module 1013, an IPv4transmission/reception control module 5017 and an IPv6transmission/reception control module 1014.

Next, description will be directed to the functions of the individualcontrol modules.

The IPv4-IPv6 switch control module 1010 has a packet switch controlfunction for the IPv4 packet transferred from the protocol controlmodule 1005 and the received packet (IPv4 packet; IPv6 packet)transferred from the LAN control module 1007. The buffer conversioncontrol module 1011 performs a buffer conversion control for theprotocol control module 1005 and the protocol conversion control module5006.

The IPv4 transmission/reception control module 5017 performs the IPv4protocol processing. In other words, the IPv4 transmission/receptioncontrol module makes decision as to which one of plural protocols is nowof concern and then performs the processing in accordance with the oneprotocol.

The IPv6 transmission/reception control module 1014 performs the IPv6protocol processing. The header conversion control module 1013 performsthe conversion between the IPv4 header and the IPv6 header byreferencing the address translation table 1015. The DNS-NAT cooperationcontrol module 1012 has reserved the address of the IPv4 (privateaddress ordinarily) and allocates the IPv4 address as reserved to theIPv6 address of the connection-destined host, the allocated addressbeing registered in the address translation control table 1015incorporated in the header conversion control module 1013.

Next, description will be made of a third embodiment of the presentinvention.

FIG. 6 shows a configuration of a LAN control apparatus 6001 accordingto the third embodiment. This LAN control apparatus 6001 is soimplemented as to be employed generally in the PC or the like andincludes a kernel 6004, a TCP/IPv4-compatible AP 6002, a socket emulator6003, a transport driver (TCP/IP) 6005, an inter-kernel networkinterface control module (NDIS wrapper) 6006, a network interfacecontrol module (NDIS control module) 6007 and an NIC (Network InterfaceCard) control module 6015.

According to the instant embodiment, there are provided between thenetwork interface control module 6007 and the NIC control module 6015 anIPv4-IPv6 switch control module 6008, a buffer conversion control module6009, an address translation control module 6011, an IPv4transmission/reception control module 6012, an IPv6transmission/reception control module 6013 and a DNS-NAT cooperationcontrol module 6010 in order to realize the IPv4-to-IPv6 headerconversion function for thereby enabling the IPv4-compatible applicationto perform communication via the IPv6 network.

The IPv4-IPv6 switch control module 6008 performs a packet switchcontrol for each of the IPv4 packet transferred from the networkinterface control module 6007 and the received packet (IPv4 packet orIPv6 packet) from the NIC control module 6015. The buffer conversioncontrol module 6009 performs buffer conversion control between thebuffer which is managed by the kernel 6004 and the buffer handled by theIPv4 transmission/reception control module 6012, the IPv6transmission/reception control module 6013, the address translationcontrol module 6011 and the DNS-NAT cooperation control module 6010.

The IPv4 transmission/reception control module 6012 performs IPv4protocol processing. The IPv6 transmission/reception control module 6013performs IPv6 protocol processing. The address translation controlmodule 6014 performs the conversion of the IPv4 header and the IPv6header by referencing the address translation table 6014. The DNS-NATcooperation control module 6010 has reserved the address of the IPv4(private address ordinarily) and allocates the IPv4 address as reservedto the IPv6 address of the connection-destined host, the allocatedaddress being registered in the address translation control table 6014incorporated in the address translation control module 6011.

In each of the embodiments described above, the protocol conversioncontrol module is available as a program having additional functions,e.g. for the packet communication function of information processingapparatus in the form of a recording medium such as a floppy disk, aCD-ROM or the like or through delivery by way of a network or the likeand can be installed in the information processing apparatus.

1. A recording medium storing a packet communication program, saidpacket communication program causing an information processing apparatusconnected to a network for communicating with another apparatus throughsaid network to execute steps comprising: generating a second addressquery packet, by a protocol conversion control unit of said informationprocessing apparatus, utilizing information included in a first addressquery packet, when said information processing apparatus startscommunication with said other apparatus, said first address query packetinquiring as to an IPv4 address of said other apparatus, and said secondaddress query packet inquiring as to an IPv6 address of a communicationprotocol of said other apparatus; and sending, by a LAN control unit ofsaid information processing apparatus, said first address query packetto said network and said second address query packet to said network. 2.A recording medium according to claim 1, wherein said first addressquery packet includes information indicating that the address beinginquired about is a first type of an IPv4 address, and wherein saidsecond address query packet includes information indicating that theaddress being inquired about is a second type of an IPv6 address.
 3. Arecording medium according to claim 1, wherein said first address querypacket and said second address query packet are packets for inquiringaddresses to address management units managing addresses of one or morerespective other apparatuses, including said other apparatus, connectedto said network, respectively.
 4. A recording medium according to claim3, further comprising a step of performing, by said LAN control unit, aprocessing of receiving from the address management unit an addressresponse packet including an IPv4 address of said other apparatus or anIPv6 address of said other apparatus.
 5. A recording medium according toclaim 1, further comprising a step of performing, by said LAN controlunit, a processing of receiving from said network an address responsepacket including an IPv4 address of said other apparatus, or an IPv6address of said other apparatus.
 6. A recording medium according toclaim 5, further comprising a step of when said LAN control unitperforms a processing of receiving the address response packet includingan IPv6 address of said other apparatus, performing, by said protocolconversion unit, a processing of allocating any IPv4 address to saidIPv6 address included in said address response packet.
 7. A recordingmedium according to claim 6, further comprising a step of retaining, bysaid protocol conversion control unit, said IPv6 address and said IPv4address for corresponding to each other.
 8. A recording medium accordingto claim 1, wherein the first address query packet is generated by thepacket communication program in the information processing apparatus. 9.A recording medium according to claim 1, wherein the first address querypacket is copied to make a copied packet which is used to generate thesecond address query packet in the information processing apparatus.